package demo02;

import java.util.Scanner;

/*题目：某个公司采用公用电话传递数据，数据是四位的整数，在传递过程中是加
密的，加密规则如下：每位数字都加上5,然后用和除以10的余数代替该数字，再将
第一位和第四位交换，第二位和第三位交换。*/
public class topic48 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int x, x1, x2, x3, x4;
        System.out.print("友情提示：输入非整数字符即可退出程序\n请输入一个四位整数：");
        while (scanner.hasNextInt()){
            x = scanner.nextInt();
            if(x < 999 || x > 9999) {
                System.out.print("你输入的不是四位整数！！！\n请重新输入：");
            }else {
                x1 = ((x / 1000) + 5) % 10;     //获取千位
                x2 = ((x % 1000) / 100 + 5) % 10;   //获取百位
                x3 = (((x % 1000) % 100) / 10 + 5) % 10; //获取十位
                x4 = ((((x % 1000) % 100) % 10) + 5) % 10; //获取个位
                //方法1：交换数位
                int[] arr = {x1, x2, x3, x4};    //用数组储存这四个数
                for(int i = 0, j = 3; i < j ; i++, j--) { //交换位置
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
                System.out.print("加密后的数字为：");
                for(int i = 0; i < 4; i++) {
                    System.out.print(arr[i]);
                }

                //方法2：交换数位
                int m;//第一位和第四位数交换
                m = x1;
                x1 = x4;
                x4 = m;

                int n;//第二位和第三位数交换
                n = x2;
                x2 = x3;
                x3 = n;
                System.out.println("\n加密后的数字为："+x1+x2+x3+x4);
                System.out.print("请输入一个四位整数：");
            }
        }
        scanner.close();
    }
}
